/**
 * @file Alog_config.h
 * @author Moon
 * @brief Alog config
 * @version 0.0.1
 * @date 2022-08-09
 * 
 * @copyright (c) 2022 Moon
 * 
 */

#ifndef __ALOG_CONFIG_H__
#define __ALOG_CONFIG_H__

#define ALOG_TAG                    "ATT"

#define A_LOG_USE                   1                       //使用log功能（1：使用，0：不使用）
#define A_LOG_SAVE_FLASH            1                       //使用log保存flash（1：使用，0：不使用）


#if A_LOG_SAVE_FLASH == 1
#define A_LOG_USE_AMEMORY           1                       //使用存储管理
#define A_LOG_USE_SHELL             1                       //LOG使用shell指令

#define ALOG_FLASH_ERASE_MIN_SIZE   4096                    //flash擦除最小值（可能是扇区大小）
#define ALOG_FLASH_WRITE_GRAN       1                       //flash写最小颗粒（bit）-仅支持1(nor flash)/ 8(stm32f4)/ 32(stm32f1)

#if A_LOG_USE_AMEMORY == 1
#include "A_memory.h"
#define ALOG_FLASH_START_ADDR                   (0)                     //Flash log起始地址
#define ALOG_FLASH_AREA_SIZE                    Amem_Get_AreaSize(AMEM_String, "log")                   //Flash log大小
#define A_LOG_FLASH_READ_FUN(data,addr,len)     Amem_Area_Read(AMEM_String, "log", data, addr, len)     //log flash读函数
#define A_LOG_FLASH_WRITE_FUN(data,addr,len)    Amem_Area_Write(AMEM_String, "log", data, addr, len)    //log flash写函数
#define A_LOG_FLASH_ERASE_FUN(addr,len)         Amem_Area_Erase(AMEM_String, "log", addr, len)          //log flash擦函数
#else
#include "w25qxx.h"
#define ALOG_FLASH_START_ADDR           (0x7C000)               //Flash log起始地址
#define ALOG_FLASH_AREA_SIZE            (0x784000)              //Flash log大小
#define A_LOG_FLASH_READ_FUN            W25QXX_Read             //log flash读函数
#define A_LOG_FLASH_WRITE_FUN           W25QXX_Write_NoCheck    //log flash写函数
#define A_LOG_FLASH_ERASE_FUN           W25QXX_erase            //log flash擦函数
#endif


#define ALOG_FLASH_LEVEL            LOG_LVL_ERROR           //log保存等级



#if A_LOG_USE_SHELL == 1
#define A_LOG_SHELL_TRANSFER        1                       //使用log文件上传（1：使用，0：不使用）
#if A_LOG_SHELL_TRANSFER == 1
#include "A_transfer.h"
#define LOG_FILE_NAME               ALOG_TAG "_LOG.log"     //导出log文件名
#endif
#endif

#endif  //A_LOG_SAVE_FLASH

#endif

